package com.ruoyi.app.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 捐款对象 app_donations
 * 
 * @author ruoyi
 * @date 2025-11-04
 */
public class AppDonations extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 捐款ID */
    private Long id;

    /** 订单ID */
    @Excel(name = "订单ID")
    private String orderId;

    /** 用户id */
    @Excel(name = "用户id")
    private Long userId;

    /** 捐款类型（1钱、2实物） */
    @Excel(name = "捐款类型", readConverterExp = "1=钱、2实物")
    private String donationType;

    /** 捐款金额 */
    @Excel(name = "捐款金额")
    private BigDecimal amount;

    /** 捐款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "捐款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date donationDate;

    /** 捐款用途 */
    @Excel(name = "捐款用途")
    private String purpose;

    /** 捐款币种 */
    @Excel(name = "捐款币种")
    private String currency;

    /** 实物描述 */
    @Excel(name = "实物描述")
    private String itemDescription;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private Long paymentMethod;

    /** 捐款定向（0非定向、1定向） */
    @Excel(name = "捐款定向", readConverterExp = "0=非定向、1定向")
    private Long isDirected;

    /** 定向描述 */
    @Excel(name = "定向描述")
    private String directionDescription;

    /** 收据状态（0未处理、1已开票、2已寄送） */
    @Excel(name = "收据状态", readConverterExp = "0=未处理、1已开票、2已寄送")
    private Long receiptStatus;

    /** 发票编号 */
    @Excel(name = "发票编号")
    private String invoiceNumber;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setOrderId(String orderId) 
    {
        this.orderId = orderId;
    }

    public String getOrderId() 
    {
        return orderId;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setDonationType(String donationType) 
    {
        this.donationType = donationType;
    }

    public String getDonationType() 
    {
        return donationType;
    }

    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }

    public void setDonationDate(Date donationDate) 
    {
        this.donationDate = donationDate;
    }

    public Date getDonationDate() 
    {
        return donationDate;
    }

    public void setPurpose(String purpose) 
    {
        this.purpose = purpose;
    }

    public String getPurpose() 
    {
        return purpose;
    }

    public void setCurrency(String currency) 
    {
        this.currency = currency;
    }

    public String getCurrency() 
    {
        return currency;
    }

    public void setItemDescription(String itemDescription) 
    {
        this.itemDescription = itemDescription;
    }

    public String getItemDescription() 
    {
        return itemDescription;
    }

    public void setPaymentMethod(Long paymentMethod) 
    {
        this.paymentMethod = paymentMethod;
    }

    public Long getPaymentMethod() 
    {
        return paymentMethod;
    }

    public void setIsDirected(Long isDirected) 
    {
        this.isDirected = isDirected;
    }

    public Long getIsDirected() 
    {
        return isDirected;
    }

    public void setDirectionDescription(String directionDescription) 
    {
        this.directionDescription = directionDescription;
    }

    public String getDirectionDescription() 
    {
        return directionDescription;
    }

    public void setReceiptStatus(Long receiptStatus) 
    {
        this.receiptStatus = receiptStatus;
    }

    public Long getReceiptStatus() 
    {
        return receiptStatus;
    }

    public void setInvoiceNumber(String invoiceNumber) 
    {
        this.invoiceNumber = invoiceNumber;
    }

    public String getInvoiceNumber() 
    {
        return invoiceNumber;
    }

    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }

    public void setUpdatedTime(Date updatedTime) 
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() 
    {
        return updatedTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderId", getOrderId())
            .append("userId", getUserId())
            .append("donationType", getDonationType())
            .append("amount", getAmount())
            .append("donationDate", getDonationDate())
            .append("purpose", getPurpose())
            .append("currency", getCurrency())
            .append("itemDescription", getItemDescription())
            .append("paymentMethod", getPaymentMethod())
            .append("isDirected", getIsDirected())
            .append("directionDescription", getDirectionDescription())
            .append("receiptStatus", getReceiptStatus())
            .append("invoiceNumber", getInvoiceNumber())
            .append("createdTime", getCreatedTime())
            .append("updatedTime", getUpdatedTime())
            .toString();
    }
}
